package sn.gandal.agriculture.agrimobile.j2me.dao;

import java.io.IOException;
import javax.microedition.rms.RecordFilter;
import sn.gandal.agriculture.agrimobile.j2me.businessObjects.Membre;

/**
 *
 * @author lramsurrun
 */
public class AbonneRecordFilter implements RecordFilter
{

    private Membre abonne;
    private int idRecord;
    private int idAbonne = -1;
    private String prenom = "";
    private String nom = "";
    private String prenomMere = "";
    private String nomMere = "";
    private boolean isModified = false;
    private boolean isActif = false;
   
    public AbonneRecordFilter()
    {
	this.abonne = new Membre();
    }

    /**
     *
     * @param abonneId
     */
    public void setAbonneId(int abonneId)
    {
	this.idAbonne = abonneId;
    }

    /**
     *
     * @param prenomAbonne
     */
    public void setPrenomAbonne(String prenomAbonne)
    {
	this.prenom = prenomAbonne;
    }

    /**
     *
     * @param nomAbonne
     */
    public void setNomAbonne(String nomAbonne)
    {
	this.nom = nomAbonne;
    }

    /**
     *
     * @param prenomMere
     */
    public void setPrenomMere(String prenomMere)
    {
	this.prenomMere = prenomMere;
    }

    /**
     *
     * @param nomMere
     */
    public void setNomMere(String nomMere)
    {
	this.nomMere = nomMere;
    }

    public void setModified(boolean bool)
    {
	this.isModified = bool;
    }

      public void setActif(boolean bool)
    {
	this.isActif = bool;
    }

    public boolean matches(byte[] abonne)
    {
	try
	{
	    this.abonne.deSerialize(abonne);
	}
	catch (IOException ex)
	{
	    ex.printStackTrace();
	}

	boolean abonneIdCondition = true;
	boolean prenomAbonneCondition = true;
	boolean nomAbonneCondition = true;
	boolean prenomMereCondition = true;
	boolean nomMereCondition = true;
	boolean isModifiedCondition = true;
	boolean isActifCondition = true;

	if (this.idAbonne != -1)
	{
	    abonneIdCondition = (this.abonne.getIdAbonne() == this.idAbonne);
	}

	if (!this.prenom.equals(""))
	{
	    prenomAbonneCondition = (this.abonne.getPrenom().toLowerCase().equals(this.prenom.toLowerCase()));
	}

	if (!this.nom.equals(""))
	{
	    nomAbonneCondition = (this.abonne.getNom().toLowerCase().equals(this.nom.toLowerCase()));
	}

	if (!this.prenomMere.equals(""))
	{
	    prenomMereCondition = (this.abonne.getPrenomMere().toLowerCase().equals(this.prenomMere.toLowerCase()));
	}

	if (!this.nomMere.equals(""))
	{
	    nomMereCondition = (this.abonne.getNomMere().toLowerCase().equals(this.nomMere.toLowerCase()));
	}

	if (this.isModified)
	{
	    isModifiedCondition = (this.abonne.isModified() == this.isModified);
	}

	if (this.isActif)
	{
	    isActifCondition = (this.abonne.isActif() == this.isActif);
	}
	
	if (abonneIdCondition && prenomAbonneCondition && nomAbonneCondition && prenomMereCondition && nomMereCondition
		&& isModifiedCondition && isActifCondition)
	{
	    return true;
	}
	else
	{
	    return false;
	}
    }
}
